package com.sugar.subscribe.course.module.business.controller.app.coach.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Schema(description = "APP - 用户入驻教练申请 Request VO")
@Data
public class AppBizUserCoachApplyReqVO {

    // ========== 教练展示信息 ==========

    @Schema(description = "昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotBlank(message = "昵称不能为空")
    private String nickname;

    @Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "头像不能为空")
    private String avatar;

    @Schema(description = "个人简介", requiredMode = Schema.RequiredMode.REQUIRED)
    private String personalProfile;

    @Schema(description = "教练展示图", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "展示图不能为空")
    @Size(min = 1, message = "至少上传一张展示图")
    private List<String> showImages;

    // ========== 教练个人信息 ==========

    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotBlank(message = "姓名不能为空")
    private String name;

    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18888888888")
    @NotBlank(message = "手机号不能为空")
    private String mobile;

    @Schema(description = "性别 1男 2女", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "性别不能为空")
    private Integer gender;

    // ========== 教练基本信息 ==========

    @Schema(description = "授课科目二级Ids", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "授课科目不能为空")
    @Size(min = 1, message = "授课科目不能为空")
    private List<Long> serviceIds;

    @Schema(description = "从业时间（字典：business_coach_work_time）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "从业时间不能为空")
    private String workTime;

    @Schema(description = "授课场地Ids", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "授课场地不能为空")
    @Size(min = 1, message = "授课场地不能为空")
    private List<Long> venueIds;
}